Beamforming, which is sometimes referred to as spatial filtering, is a signal processing technique used in sensor arrays for directional signal transmission or reception. For example, beamforming is a common task in array signal processing, including diverse fields such as for acoustics, communications, sonar, radar, astronomy, seismology, and medical imaging. A plurality of spatially-separated sensors, collectively referred to as a sensor array, can be employed for sampling wave fields. Signal processing of the sensor data allows for spatial filtering, which facilitates a better extraction of a desired source signal in a particular direction and suppression of unwanted interference signals from other directions. For example, sensor data can be combined in such a way that signals arriving from particular angles experience constructive interference while others experience destructive interference. The improvement of the sensor array compared with reception from an omnidirectional sensor is known as the gain (or loss). The pattern of constructive and destructive interference may be referred to as a weighting pattern, or beampattern.
As one example, microphone arrays are known in the field of acoustics. A microphone array has advantages over a conventional unidirectional microphone. By processing the outputs of several microphones in an array with a beamforming algorithm, a microphone array enables picking up acoustic signals dependent on their direction of propagation. In particular, sound arriving from a small range of directions can be emphasized while sound coming from other directions is attenuated. For this reason, beamforming with microphone arrays is also referred to as spatial filtering. Such a capability enables the recovery of speech in noisy environments and is useful in areas such as telephony, teleconferencing, video conferencing, and hearing aids.
Signal processing of the sensor data of a beamformer generally involves processing the signal of each sensor with a filter weight and adding the filtered sensor data. This is known as a filter-and-sum beamformer. The filtering of sensor data can also be implemented in the frequency domain by multiplying the sensor data with known weights for each frequency, and computing the sum of the weighted sensor data. In this case, the weights can be obtained by transforming the filter coefficients to the frequency domain using a Fourier Transform. Applying a filter to a signal may alter the magnitude and phase of the signal. For example, a filter may pass certain signals unaltered but suppress others. The behavior of each filter can be represented by its weighting coefficients.
An initial step in designing a beamformer may be determining the desired beamformer filters or weights. These filters directly affect the desired beampattern, which represents the desired spatial selectivity of the beamformer. For example, if one is performing speech processing and the direction of a speaker is known, a beampattern may be desired that amplifies audio signals being received from the direction of the speaker but suppresses audio signals received from other directions. Once a desired beampattern is specified, filters can be designed for a beamformer to best approximate the desired beampattern. In particular, the spatial filtering properties of a beamformer can be altered through selection of weights for each microphone. Various techniques may be utilized to determine filter weighting coefficients to approximate a desired beampattern.
One technique that has been utilized to determine the filter weighting coefficients is a mathematical technique called constrained convex optimization. In mathematics, an optimization problem generally can have the following form:
                              min          x                ⁢                              f            0                    ⁡                      (            x            )                                              x        ∈                  R          n                                                  subject          ⁢                                          ⁢          to          ⁢                                          ⁢                                    f              i                        ⁡                          (              x              )                                      ≤                  b          i                                              i          =          1                ,        …        ⁢                                  ,        m            
where x is a vector (e.g., x1, . . . , xn)) called the optimization variable, the function f0 is called the objective function, the functions fi are called the constraint functions, and the constants b1, . . . , bm are called bounds, or constraints. A particular vector x* may be called optimal if it has the smallest objective value among all vectors that satisfy the constraints. Convex optimization is a type of optimization problem. In particular, a convex optimization problem is one in which the objective and constraint functions are convex, which means they satisfy the following inequality:ƒi(αx+βy)≦αƒi(x)+βƒi(y)where xεR, and α and β are real numbers such that α+β=1, α≧0, β≧0.
When using convex optimization to select weighting coefficients, the optimization typically has been performed only in a two-dimensional space. For example, a desirable beampattern may be specified only in an x-y plane, where the beampattern is specified only as a function of an azimuth angle that specifies a direction in the x-y plane. For linear sensor arrays, this technique is sufficient because there is rotational symmetry about the sensor array axis. However, for sensor arrays arranged in two or three dimensions, such as planar sensor arrays, specifying the desirable beampattern in two-dimensional space results in poor performance for the beamformer. If the beamformer is implemented by using weighting coefficients that have been optimized for a two-dimensional beampattern, the performance of the beamformer may not match the desirable beampattern sufficiently closely over a three-dimensional space. For example, suppression of signals being received from unwanted directions may not be sufficient, causing unwanted noise to interfere with signals received from a desired direction. In particular, the directivity index (DI), which is a measure of the amount of noise suppression the beamformer provides in a spherically diffuse noise field, is very poor for beamformers designed using weighting coefficients that have been optimized over a two-dimensional space.